home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 November: Tool Chest / Dev.CD Nov 98 TC.toast / Sample Code / Snippets / Processes / Process / Source / proc.c
Encoding:
C/C++ Source or Header  |  1996-09-17  |  2.4 KB  |  76 lines  |  [TEXT/CWIE]

  1. /*
  2. ** James "im" Beninghaus
  3. */
  4.  
  5.  
  6. #include    <Errors.h>
  7. #include    <OSUtils.h>
  8. #include    <Processes.h>
  9. #include    <stdio.h>
  10.  
  11.  
  12. void main (void) 
  13. {
  14.     
  15.     auto    OSErr                osErr            = noErr;
  16.     auto    ProcessSerialNumber    process;
  17.     auto    ProcessInfoRec        procInfo;
  18.     auto    Str255                procName;
  19.     auto    DateTimeRec            launchDateTime;        
  20.             FSSpec              appFSSpec;
  21.  
  22.     InitGraf((Ptr) &qd.thePort);
  23.     
  24.     
  25.     printf(
  26.         "         Process Name                 Number        Type  Signature      Mode   Location   Size   FreeMem      Launcher         LaunchDate        ActiveTime  FileDirID VRefNum  FileName                        "                        
  27.         "\n"
  28.         "-------------------------------- -----------------  ----    ----       -------- -------- -------- -------- ----------------- -------------------   --------   --------  ----     --------------------------------"
  29.         "\n"
  30.     );
  31.     
  32.     process.highLongOfPSN = kNoProcess;
  33.     process.lowLongOfPSN  = kNoProcess;
  34.     
  35.     procInfo.processInfoLength            = sizeof(ProcessInfoRec);
  36.     procInfo.processName                = procName;
  37.     procInfo.processAppSpec             = &appFSSpec;
  38.  
  39.     while (procNotFound != (osErr = GetNextProcess(&process))) {
  40.         if (noErr == (osErr = GetProcessInformation(&process, &procInfo))) {
  41.             if ('\0' == procName[1])
  42.                 procName[1] = '0';
  43.             SecondsToDate(procInfo.processLaunchDate, &launchDateTime);
  44.             printf(
  45.                 "%-32P %08lx.%08lx '%c%c%c%c'  '%c%c%c%c'      %08lx %08lx %08lx %08lx %08lx.%08lx %2d/%2d/%2d %2d:%02d:%02d   %08lx   %08ld  %04d     %P\n",
  46.                 procInfo.processName,
  47.                 procInfo.processNumber.highLongOfPSN,
  48.                 procInfo.processNumber.lowLongOfPSN,
  49.                 ((char *) &procInfo.processType)[0],
  50.                 ((char *) &procInfo.processType)[1],
  51.                 ((char *) &procInfo.processType)[2],
  52.                 ((char *) &procInfo.processType)[3],
  53.                 ((char *) &procInfo.processSignature)[0],
  54.                 ((char *) &procInfo.processSignature)[1],
  55.                 ((char *) &procInfo.processSignature)[2],
  56.                 ((char *) &procInfo.processSignature)[3],
  57.                 procInfo.processMode,
  58.                 procInfo.processLocation,
  59.                 procInfo.processSize,
  60.                 procInfo.processFreeMem,
  61.                 procInfo.processLauncher.highLongOfPSN,
  62.                 procInfo.processLauncher.lowLongOfPSN,
  63.                 launchDateTime.month,
  64.                 launchDateTime.day,
  65.                 launchDateTime.year,
  66.                 launchDateTime.hour,
  67.                 launchDateTime.minute,
  68.                 launchDateTime.second,
  69.                 procInfo.processActiveTime,
  70.                 procInfo.processAppSpec -> parID,
  71.                 procInfo.processAppSpec -> vRefNum,
  72.                 procInfo.processAppSpec -> name
  73.             );
  74.         }
  75.     }
  76. }